#!/bin/bash
# Supervisor 专用 JavaBridge 启动脚本

# 基础配置
BRIDGE_DIR="/www/wwwroot/JavaBridge/WEB-INF/lib"
JAR_PATH="$BRIDGE_DIR/JavaBridge.jar"
JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC -Dfile.encoding=UTF-8 -Djava.awt.headless=true"
LOG_DIR="$BRIDGE_DIR/logs_backup"
DAILY_LOG="$LOG_DIR/JavaBridge_$(date +%Y%m%d).log"
PORT=8080
BRIDGE_OPTS="SERVLET:${PORT} 3"

# Java路径（根据实际环境设置）
JAVA_CMD="/www/server/java/jdk1.8.0_371/bin/java"

# 创建日志目录
if [ ! -d "$LOG_DIR" ]; then
    mkdir -p "$LOG_DIR"
fi

# 检查JAR文件是否存在
if [ ! -f "$JAR_PATH" ]; then
    echo "错误: JAR文件不存在: $JAR_PATH"
    exit 1
fi

# 检查Java是否可用
if [ ! -f "$JAVA_CMD" ] || [ ! -x "$JAVA_CMD" ]; then
    echo "错误: Java路径不可用: $JAVA_CMD"
    exit 1
fi

# 清理端口占用（可选）
if command -v lsof >/dev/null 2>&1; then
    PID=$(lsof -ti:${PORT} 2>/dev/null)
    if [ ! -z "$PID" ]; then
        echo "清理端口 ${PORT} 占用进程: $PID"
        kill -9 $PID 2>/dev/null
        sleep 2
    fi
fi

echo "启动 JavaBridge..."
echo "执行命令: ${JAVA_CMD} ${JAVA_OPTS} -jar \"${JAR_PATH}\" ${BRIDGE_OPTS}"
echo "日志文件: $DAILY_LOG"

# 前台运行Java进程（Supervisor要求）
exec ${JAVA_CMD} ${JAVA_OPTS} -jar "${JAR_PATH}" ${BRIDGE_OPTS} >> "$DAILY_LOG" 2>&1